'''
Python变量没有类型设置问题，不存在位数溢出，因此中间要使用int转换
并直接判断两个区间值即可。另外正负数在取模时候会有问题，因此如果是负
数则先转为正数处理。
'''
class Solution:
    def reverse(self, x: int) -> int:

        flag = 1
        if x < 0:
            flag = -1
            x = -x
        
        accnum = 0
        while x!= 0:
            mod = x % 10
            accnum = int(accnum) * 10 + int(mod)
            if accnum>2147483647 or accnum < -2147483648:
                return 0
            x = int(x / 10)
            
        return flag * accnum